/*
jquery.js
jquery.metadata.js
*/
$(function(){ 
    $(".brv-edit-table select").change(function(){ 
        if($("option:selected",this).attr("hint")=="not")
        {
            alert("该分类禁止选择！");
            $(this).val("0");
        }		        	    
    });  	
});
BrvMsg=$.noop;
/*
传进值:opt.mixed:选择符
	opt.fn回调函数
返回值[{id:"",msg:''}...]
*/
$.metadata.setType("attr", "metadata");
console.log($("#card_pwd").metadata());
function BrvValidate(opt){
    var flag=true;
    opt=opt||{};
    var fn=opt.fn||$.noop;
    var mixed=typeof opt.mixed=="undefined"?"body":opt.mixed;	
	//返回数组
	var result=new Array();
    $("input[type='text'],input[type='password'],textarea",$(mixed)).each(function(){		
        if(typeof $(this).attr("metadata")=="undefined")return;	
		//获取id
		var id=$(this).attr("id");
		var rule=$(this).metadata().rule||"";
        var value=$.trim($(this).val());   
		
		//检查是否为空
        if(value.length==0){ 			
			result.push({id:id,msg:"必须填写!"});
            flag=false;			
            return;
        }		
		//检查是否中间含空格
		if(/[\s]+/.test($.trim(value))){ 
			result.push({id:id,msg:"中间不能含空白字符!"});
			flag=false;			
            return;
		}
		//校验类型		
        switch(rule){
			case "chinese":				
				if(!/[\u4E00-\u9FA5]/g.test(value)){ 
					result.push({id:id,msg:"只能含汉字!"});
                    flag= false;	
					return;
                }				
                break;
            case "email"://邮件				
                if(!/^[a-z-A-Z-0-9]+@[a-z-A-Z-0-9]+\.[a-z-A-Z]+\w*[a-z-A-Z-0-9]+$/.test(value)){ 
					result.push({id:id,msg:"电子邮件格式非法!"});
                    flag= false;
					return;
                }
                break;
            case "handphone"://手机号码
                if(!/^[0-9]{11}$/.test(value)){ 
					result.push({id:id,msg:"中国大陆手机号码由11位数字组成!"});
                    flag= false;
					return;
                }
                break;
            case "phone"://固定电话
                if(!(/^[0-9]{4}-[0-9]{8}$/.test(value) || /^[0-9]{8}$/.test(value))){ 
					result.push({id:id,msg:"固定电话格式为\"区号(4位,可不填)-号码(8位)\"!"});
                    flag= false;
					return;
                }
                break;
            case "int":
                if(!(/^[1-9]+[0-9]*$/.test(value)||value=="0")){ 
					result.push({id:id,msg:"必须为非负整数!"});
                    flag=false;  
					return;
                }   
				break;             
            case "pwd"://密码判断
                if(!/^[a-z-A-Z]+[a-z-A-Z-0-9_]*[a-z-A-Z-0-9]+$/.test(value)){ 
					result.push({id:id,msg:"密码只能含字母、数字或下划线(以字母开头,以字母或数字结尾,中间可含下划线)!"});
                    flag=false;
					return;
                }
                break;
			case "url":
			
				break;
            default:				
        }
		//检查字符个数,标志位:length
		if(typeof $(this).metadata().length!="undefined"){	
			length=$(this).metadata().length;
			//一般textbox……
			if(/^<[0-9]+/.test(length)){ 
				var len=length.substr(1);
				if(value.length>len){ 
					result.push({id:id,msg:"必须小于"+len+"个字符!"});
					flag= false;
					return;
				}
			}
			//多文字弱性检测(不推荐)
			else if(/^>[0-9]+/.test(length)){ 
				var len=new Number(length.substr(1));
				if(value.length<len){ 
					result.push({id:id,msg:"必须大于"+len+"个字符!"});
					flag= false;	
					return;
				}					
			}
			//多文字强性检测(推荐)
			else if(/^[0-9]+,[0-9]+/.test(length)){ 
				var minVal=length.split(",")[0];
				var maxVal=length.split(",")[1];
				var len=value.length;
				if(len<minVal||len>maxVal){ 
					result.push({id:id,msg:"必须在"+minVal+"~"+maxVal+"个字符之间!"});
					flag= false;
					return;
				}
			}
		}	
		//校验值的大小
		if(typeof $(this).metadata().range!="undefined"){ 
			range=$(this).metadata().range;
			
			if(/^<[0-9]+/.test(range)){ 
				var num=range.substr(1);
				if(value>num){ 
					result.push({id:id,msg:"必须小于"+num});
					flag= false;
					return;
				}
			}
			else if(/^>[0-9]+/.test(range)){ 
				num=range.substr(1);
				if(value<num){ 
					result.push({id:id,msg:"必须大于"+num});
					flag= false;
					return;
				}					
			}
			else if(/^[0-9]+,[0-9]+/.test(range)){ 
				minVal=range.split(",")[0];
				maxVal=range.split(",")[1];
				if(value<minVal||value>maxVal){ 
					result.push({id:id,msg:"必须在"+minVal+"~"+maxVal+"之间!"});
					flag= false;
					return;
				}
			}					
		}			
    });
    $("select",$(mixed)).each(function(){ 
        if(typeof $(this).attr("opt")=="undefined")return;
        if($(this).val()=="0"){ 
			result.push({id:id,msg:"必须选择!"});
            flag= false;		
        }						  
    });
	/*
    var ids=opt.ids||[];
    for(key in ids){ 
        if($.trim($(ids[key]).html()).length<=10||$.trim($(ids[key]).html()).length>=20000){ 
            alert("内容必须在10~20000字符之内!");
            flag= false;		
        }	
    }*/
    /*	$(".CuteEditorTextArea",$(mixed)).each(function(){ 
		alert($(this).html());									   
	});*/
	//alert("开始执行回调函数");
	console.log(result);return;
    if(typeof fn!="undefined")fn({result:result});
    return flag;
}